home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 8 / FM Towns Free Software Collection 8.iso / t_os / pao / pvs_pvd / src / pvd.h < prev    next >
Text File  |  1994-06-01  |  5KB  |  164 lines

  1. /* << HighC V1.7 >> [FM-TOWNS] **********************************************
  2. *
  3. *    .PVS 表示プログラム
  4. *    ----------------------------------------------------------------------
  5. *    Programmed by Y.Hirata ( NIFTY-ID: NAB03321  パオパオ )
  6. *
  7. *    NOTE: TAB=4
  8. ****************************************************************************/
  9.  
  10. #ifndef _PVD_DEFINED
  11.     #define    _PVD_DEFINED
  12.  
  13.     #include <stdio.h>
  14.  
  15.     extern void _harderr_retry( void ) ;
  16.     extern void _harderr_clear( void ) ;
  17.  
  18.     #define    TRUE                1                /*  真値                */
  19.     #define    FALSE                0                /*  偽値                */
  20.  
  21.     #define    MOS_NONE            0x00            /*  ボタン開放            */
  22.     #define    MOS_LEFT            0x01            /*  左ボタン押下            */
  23.     #define    MOS_RIGHT            0x02            /*  右ボタン押下            */
  24.     #define    MOS_BOTH            0x03            /*  左右ボタン押下        */
  25.  
  26.     #define    PAD_SELECT            0x80
  27.     #define    PAD_START            0x40
  28.     #define    PAD_B                0x20
  29.     #define    PAD_A                0x10
  30.     #define    PAD_RIGHT            0x08
  31.     #define    PAD_LEFT            0x04
  32.     #define    PAD_DOWN            0x02
  33.     #define    PAD_UP                0x01
  34.     #define    PAD_MOVE            (PAD_RIGHT|PAD_LEFT|PAD_DOWN|PAD_UP)
  35.  
  36.     typedef    unsigned char        _BYTE ;
  37.     typedef    unsigned short int    _WORD ;
  38.     typedef    unsigned long        _DWORD ;
  39.  
  40.     typedef struct {                            /*  パレット設定用            */
  41.         _DWORD    no ;                            /*  パレット番号(0~)        */
  42.         _BYTE    b ;                                /*  青の階調            */
  43.         _BYTE    r ;                                /*  赤の階調            */
  44.         _BYTE    g ;                                /*  緑の階調            */
  45.         _BYTE    zero ;                            /*  0                    */
  46.     } _SET_PALETTE ;
  47.  
  48.     typedef struct {                            /*  16色パレット設定用        */
  49.         _DWORD    npal ;
  50.         _SET_PALETTE    pal[16] ;
  51.     } _PAL_16 ;
  52.  
  53.     typedef struct {                            /*  256色パレット設定用    */
  54.         _DWORD    npal ;
  55.         _SET_PALETTE    pal[256] ;
  56.     } _PAL_256 ;
  57.  
  58.     enum Values_for_SelectNumber {                /*  選択識別番号        */
  59.         SEL_TIT,    P0_1,        P0_2,        P0_3,        /*  0 -  3        */
  60.         P0_4,        P0_5,        P0_6,        P0_7,        /*  4 -  7        */
  61.         P0_8,        P0_9,        P0_10,        P0_11,        /*  8 - 11        */
  62.         P0_12,        P0_13,        P0_14,        P0_15,        /*  12- 15        */
  63.         P0_16,        P0_17,        P0_18,        P1_1,        /*  16- 19        */
  64.         P1_2,        P1_3,        P1_4,        P1_5,        /*  20- 23        */
  65.         P1_6,        P1_7,        P1_8,        P1_9,        /*  24- 27        */
  66.         P1_10,        P1_11,        D0_0,        D1_1,        /*  28- 31        */
  67.         D0_3,        D1_3,        SEL_EXEC,    SEL_END,    /*  32- 35        */
  68.         P0_X1,        P0_X2,        P0_X4,        P0_Y1,        /*  36- 39        */
  69.         P0_Y2,        P0_Y4,        P1_X1,        P1_X2,        /*  40- 43        */
  70.         P1_X4,        P1_Y1,        P1_Y2,        P1_Y4,        /*  44- 47        */
  71.         SEL_DOS,    SEL_TIF,    SEL_MAX                    /*  48-            */
  72.     } ;
  73.  
  74.     typedef struct {                            /*  カレント情報構造体        */
  75.         char    *fname ;                        /*  .pvsファイル名            */
  76.         FILE    *fp ;                            /*  ファイルポインタ            */
  77.         char    *buf ;                            /*  VRAMデータ格納領域    */
  78.         int        p0 ;                            /*  page0 モード            */
  79.         int        p1 ;                            /*  page1 モード            */
  80.         int        disp ;                            /*  display                */
  81.         int        zx0, zy0 ;                        /*  表示倍率            */
  82.         int        zx1, zy1 ;                        /*  表示倍率            */
  83.         int        sx0, sy0 ;                        /*  page0表示画面先頭    */
  84.         int        sx1, sy1 ;                        /*  page1表示画面先頭    */
  85.         int        vx0, vy0 ;                        /*  page0仮想画面先頭    */
  86.         int        vx1, vy1 ;                        /*  page1仮想画面先頭    */
  87.         int        xsize, ysize ;                    /*  保存サイズ            */
  88.         int        pixel ;                            /*  保存データピクセル数        */
  89.         int        page ;                            /*  保存ページ            */
  90.     } _SELECT_PARA ;
  91.  
  92.     typedef struct {
  93.         int        pixel ;                            /*  ピクセル数                */
  94.         int        sx, sy ;                        /*  表示サイズ            */
  95.         int        vx, vy ;                        /*  仮想画面サイズ        */
  96.         int        zx, zy ;                        /*  初期倍率            */
  97.     } _SCREEN_PARA ;
  98.  
  99.     #define    VRAM_OFFSET            864                /*  .pvs内オフセット            */
  100.     #define    VRAM_SIZE            (512*1024)        /*  VRAMサイズ            */
  101.     #define    VRAM_HALF            (256*1024)        /*  VRAM 2画面目オフセット    */
  102.     #define    TMP_SIZE            1024            /*  作業領域サイズ(固定)    */
  103.  
  104.     extern char    Mwork[] ;                        /*  MOS作業領域            */
  105.     extern char    _mos_cur[] ;                    /*  マウスカーソル(アイコン)        */
  106.     extern char    _tmp[] ;                        /*  作業領域            */
  107.  
  108.     extern FILE    *_fp ;                            /*  .pvsファイルポインタ        */
  109.     extern char    *_buf ;                            /*  VRAMデータ格納領域    */
  110.     extern _PAL_16    _pal160, _pal161 ;            /*  16色パレット設定用        */
  111.     extern _PAL_256    _pal256 ;                    /*  256色パレット設定用    */
  112.  
  113.     extern _SELECT_PARA    _para ;                    /*  選択状態の情報        */
  114.     extern _SCREEN_PARA    _screen[] ;                /*  画面モードの情報        */
  115.  
  116.     #define    _pixel0                (_screen[_para.p0-1].pixel)
  117.     #define    _pixel1                (_screen[_para.p1-1].pixel)
  118.     #define    _sx0                (_screen[_para.p0-1].sx)
  119.     #define    _sy0                (_screen[_para.p0-1].sy)
  120.     #define    _sx1                (_screen[_para.p1-1].sx)
  121.     #define    _sy1                (_screen[_para.p1-1].sy)
  122.     #define    _vx0                (_screen[_para.p0-1].vx)
  123.     #define    _vy0                (_screen[_para.p0-1].vy)
  124.     #define    _vx1                (_screen[_para.p1-1].vx)
  125.     #define    _vy1                (_screen[_para.p1-1].vy)
  126.  
  127.     void crtc_out( int reg ) ;
  128.     void mosBreak( void ) ;
  129.     int mosButton( void ) ;
  130.     void ginit( void ) ;
  131.     void minit( void ) ;
  132.     void to_vram( void ) ;
  133.     void reverse( int old,int new ) ;
  134.     int select_msdos( void ) ;
  135.     int select_page0( int sel ) ;
  136.     int page1_check( int p1 ) ;
  137.     int select_page1( int sel ) ;
  138.     int select_disp( int sel ) ;
  139.     int select_zoom( int sel ) ;
  140.     void select_on( int old,int new ) ;
  141.     int select( void ) ;
  142.     void setdos( void ) ;
  143.     void setdisp( void ) ;
  144.     void menu( void ) ;
  145.     void move_disp( int status ) ;
  146.     void start_disp( int status ) ;
  147.     void reset_disp( void ) ;
  148.     void mos_action( void ) ;
  149.     void disp( void ) ;
  150.     int getpal( void ) ;
  151.     void errWait( void ) ;
  152.     void usage( void ) ;
  153.     void openError( char *fname ) ;
  154.     int main( int ac,char *av[] ) ;
  155.  
  156. #endif
  157.  
  158. /*    HISTORY
  159. -----------------------------------------------------------------------------
  160. *    1994.01.03 : CREATE
  161. *    1994.01.10 : パッド操作で画面スクロール,表示位置変更をできるようにした.
  162. *    1994.01.13 : TIFF保存できるようにした.
  163. ---------------------------------------------------------------------------*/
  164.